package user

import (
	"context"
	micro_gfyx_oppty_service "git.mycaigou.com/gfyx/micro-gfyx-api/proto/micro_gfyx_oppty_service_proto/micro-gfyx-oppty-service/base"
)

type LoginRepositoryIface interface {
	// 废弃用法
	UnionUserLogin(ctx context.Context, tenantCode, account, password string) (*UnionUserLoginInfo, error)
	// LoginByPassword 账号密码登录
	LoginByPassword(ctx context.Context, request *micro_gfyx_oppty_service.LoginByPasswordRequest) (*micro_gfyx_oppty_service.LoginByPasswordResponse, error)
	// LoginByPhone 验证码登录
	LoginByPhone(ctx context.Context, request *micro_gfyx_oppty_service.LoginByPhoneRequest) (*micro_gfyx_oppty_service.LoginByPhoneResponse, error)
	// GetResetPasswordToken 获取重置密码token
	GetResetPasswordToken(ctx context.Context, request *micro_gfyx_oppty_service.GetResetPasswordTokenRequest) (*micro_gfyx_oppty_service.GetResetPasswordTokenResponse, error)
	// ResetPasswordByPhone 重设密码
	ResetPasswordByPhone(ctx context.Context, request *micro_gfyx_oppty_service.ResetPasswordByPhoneRequest) (*micro_gfyx_oppty_service.ResetPasswordByPhoneResponse, error)
	// Sso 单点登录
	Sso(ctx context.Context, request *micro_gfyx_oppty_service.SsoRequest) (*micro_gfyx_oppty_service.SsoResponse, error)
	// LoginUserInfo 获取登录用户信息
	LoginUserInfo(ctx context.Context, request *micro_gfyx_oppty_service.LoginUserRequest) (*micro_gfyx_oppty_service.LoginUserInfo, error)
	// LogoutUser 退出登录
	LogoutUser(ctx context.Context, request *micro_gfyx_oppty_service.LogoutRequest) (*micro_gfyx_oppty_service.LogoutResponse, error)
	// RefreshToken 刷新 token
	RefreshToken(ctx context.Context, request *micro_gfyx_oppty_service.RefreshTokenRequest) (*micro_gfyx_oppty_service.RefreshTokenResponse, error)
}
